package com.hdl.service;

import com.hdl.entity.Areas;
import com.hdl.exception.CodeException;
import com.hdl.vo.PageVO;
import java.util.List;

/**
 * <pre>
 * -业务逻辑接口
 * - 行政区域
 * ClassName : com.hdl.service.AreasService
 * @author 湛锋
 * Date : 2020-8-24 11:18:28
 * </pre>
 */
public interface AreasService {


	/**
	 * 添加一个新的行政区域
	 * @param areas
	 * @return
	 * @throws CodeException 500:添加行政区域错误
	 */
	int add(Areas areas)throws CodeException;
	
	/**
	 * 根据行政区域编号修改行政区域
	 * @param areas
	 * @return
	 * @throws CodeException 501:修改行政区域错误
	 */
	int update(Areas areas)throws CodeException;
	
	
	/**
	 * 根据行政区域编号删除行政区域
	 * @param id - 行政区域编号
	 * @return
	 * @throws CodeException 502:删除行政区域错误
	 */
	int delete(String id)throws CodeException;
	
	/**
	 * 根据行政区域编号获取行政区域对象
	 * @param id - 行政区域编号
	 * @return
	 * @throws CodeException 503:获取行政区域失败
	 */
	Areas get(String id)throws CodeException;
	
	/**
	 * 根据模型查找匹配的数据，并进行分页
	 * @param areas - 匹配数据模型
	 * @param current - 当前页面
	 * @param rowMax - 每页最大值
	 * @return - 分页结果
	 * @throws CodeException 504:获取行政区域分页数据失败
	 */
	PageVO<Areas> page(Areas areas,Integer current,Integer rowMax)throws CodeException;

	/**
	 * 根据模型查找匹配的数据
	 * @param areas - 匹配数据模型
	 * @param len
	 * @return
	 * @throws CodeException 505:获取行政区域列表数据失败
	 */
	List<Areas> list(Areas areas,int len);
	
	/**
	 * 获取该地区的各级数据
	 * @param id
	 * @return CodeException 506:格式不正确
	 */
	List<Areas> list(String id);
	
	/**
	 * 获取下级地区
	 * @param pid
	 * @return
	 */
	List<Areas> listChildren(String pid);
	
	/**
	 * 获取该地区的完整名称
	 * @param id
	 * @return CodeException 506:格式不正确
	 */
	String getName(String id);
 
}
